﻿namespace WMS6.Web.BillingServiceRef
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.CompilerServices;
    using System.Runtime.Serialization;

    [Serializable, GeneratedCode("System.Runtime.Serialization", "3.0.0.0"), DataContract(Name="AccessorialChargesInfo", Namespace="http://schemas.datacontract.org/2004/07/WMS6.DataEntity"), DebuggerStepThrough]
    public class AccessorialChargesInfo : IExtensibleDataObject, INotifyPropertyChanged
    {
        [OptionalField]
        private string AccessorialChargesIDField;
        [OptionalField]
        private string AccessorialIDField;
        [OptionalField]
        private string AccessorialTypeField;
        [OptionalField]
        private decimal BilledUnitsField;
        [OptionalField]
        private decimal BillingAmountField;
        [OptionalField]
        private string BillingObjectDescrField;
        [OptionalField]
        private string BillingObjectField;
        [OptionalField]
        private string BillingObjectIDField;
        [OptionalField]
        private string BillingObjectNameField;
        [OptionalField]
        private decimal BillingQtyField;
        [OptionalField]
        private string ChargeInvocationField;
        [OptionalField]
        private decimal ChargePerUnitField;
        [OptionalField]
        private string ChargeTypeField;
        [OptionalField]
        private string ChargeUnitField;
        [OptionalField]
        private string CostTypeField;
        [OptionalField]
        private string CreatedByField;
        [OptionalField]
        private DateTime CreatedDateField;
        [OptionalField]
        private decimal DebitField;
        [OptionalField]
        private string DescrField;
        [OptionalField]
        private string DueFromToField;
        [NonSerialized]
        private ExtensionDataObject extensionDataField;
        [OptionalField]
        private string GeneralLedgerIDField;
        [OptionalField]
        private string IsCheckedField;
        [OptionalField]
        private string LotField;
        [OptionalField]
        private string OrderIDField;
        [OptionalField]
        private int OrderLineIDField;
        [OptionalField]
        private string OwnerIDField;
        [OptionalField]
        private decimal QtyField;
        [OptionalField]
        private string RateIDField;
        [OptionalField]
        private string RemarkField;
        [OptionalField]
        private int RowIDField;
        [OptionalField]
        private string SkuIDField;
        [OptionalField]
        private string TaxGroupIDField;
        [OptionalField]
        private decimal TotalNetVolumeField;
        [OptionalField]
        private decimal TotalNetWeightField;
        [OptionalField]
        private byte[] TsField;
        [OptionalField]
        private string UpdatedByField;
        [OptionalField]
        private DateTime UpdatedDateField;
        [OptionalField]
        private string WhIDField;

        public event PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if (propertyChanged != null)
            {
                propertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        [DataMember]
        public string AccessorialChargesID
        {
            get
            {
                return this.AccessorialChargesIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AccessorialChargesIDField, value))
                {
                    this.AccessorialChargesIDField = value;
                    this.RaisePropertyChanged("AccessorialChargesID");
                }
            }
        }

        [DataMember]
        public string AccessorialID
        {
            get
            {
                return this.AccessorialIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AccessorialIDField, value))
                {
                    this.AccessorialIDField = value;
                    this.RaisePropertyChanged("AccessorialID");
                }
            }
        }

        [DataMember]
        public string AccessorialType
        {
            get
            {
                return this.AccessorialTypeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AccessorialTypeField, value))
                {
                    this.AccessorialTypeField = value;
                    this.RaisePropertyChanged("AccessorialType");
                }
            }
        }

        [DataMember]
        public decimal BilledUnits
        {
            get
            {
                return this.BilledUnitsField;
            }
            set
            {
                if (!this.BilledUnitsField.Equals(value))
                {
                    this.BilledUnitsField = value;
                    this.RaisePropertyChanged("BilledUnits");
                }
            }
        }

        [DataMember]
        public decimal BillingAmount
        {
            get
            {
                return this.BillingAmountField;
            }
            set
            {
                if (!this.BillingAmountField.Equals(value))
                {
                    this.BillingAmountField = value;
                    this.RaisePropertyChanged("BillingAmount");
                }
            }
        }

        [DataMember]
        public string BillingObject
        {
            get
            {
                return this.BillingObjectField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BillingObjectField, value))
                {
                    this.BillingObjectField = value;
                    this.RaisePropertyChanged("BillingObject");
                }
            }
        }

        [DataMember]
        public string BillingObjectDescr
        {
            get
            {
                return this.BillingObjectDescrField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BillingObjectDescrField, value))
                {
                    this.BillingObjectDescrField = value;
                    this.RaisePropertyChanged("BillingObjectDescr");
                }
            }
        }

        [DataMember]
        public string BillingObjectID
        {
            get
            {
                return this.BillingObjectIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BillingObjectIDField, value))
                {
                    this.BillingObjectIDField = value;
                    this.RaisePropertyChanged("BillingObjectID");
                }
            }
        }

        [DataMember]
        public string BillingObjectName
        {
            get
            {
                return this.BillingObjectNameField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BillingObjectNameField, value))
                {
                    this.BillingObjectNameField = value;
                    this.RaisePropertyChanged("BillingObjectName");
                }
            }
        }

        [DataMember]
        public decimal BillingQty
        {
            get
            {
                return this.BillingQtyField;
            }
            set
            {
                if (!this.BillingQtyField.Equals(value))
                {
                    this.BillingQtyField = value;
                    this.RaisePropertyChanged("BillingQty");
                }
            }
        }

        [DataMember]
        public string ChargeInvocation
        {
            get
            {
                return this.ChargeInvocationField;
            }
            set
            {
                if (!object.ReferenceEquals(this.ChargeInvocationField, value))
                {
                    this.ChargeInvocationField = value;
                    this.RaisePropertyChanged("ChargeInvocation");
                }
            }
        }

        [DataMember]
        public decimal ChargePerUnit
        {
            get
            {
                return this.ChargePerUnitField;
            }
            set
            {
                if (!this.ChargePerUnitField.Equals(value))
                {
                    this.ChargePerUnitField = value;
                    this.RaisePropertyChanged("ChargePerUnit");
                }
            }
        }

        [DataMember]
        public string ChargeType
        {
            get
            {
                return this.ChargeTypeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.ChargeTypeField, value))
                {
                    this.ChargeTypeField = value;
                    this.RaisePropertyChanged("ChargeType");
                }
            }
        }

        [DataMember]
        public string ChargeUnit
        {
            get
            {
                return this.ChargeUnitField;
            }
            set
            {
                if (!object.ReferenceEquals(this.ChargeUnitField, value))
                {
                    this.ChargeUnitField = value;
                    this.RaisePropertyChanged("ChargeUnit");
                }
            }
        }

        [DataMember]
        public string CostType
        {
            get
            {
                return this.CostTypeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.CostTypeField, value))
                {
                    this.CostTypeField = value;
                    this.RaisePropertyChanged("CostType");
                }
            }
        }

        [DataMember]
        public string CreatedBy
        {
            get
            {
                return this.CreatedByField;
            }
            set
            {
                if (!object.ReferenceEquals(this.CreatedByField, value))
                {
                    this.CreatedByField = value;
                    this.RaisePropertyChanged("CreatedBy");
                }
            }
        }

        [DataMember]
        public DateTime CreatedDate
        {
            get
            {
                return this.CreatedDateField;
            }
            set
            {
                if (!this.CreatedDateField.Equals(value))
                {
                    this.CreatedDateField = value;
                    this.RaisePropertyChanged("CreatedDate");
                }
            }
        }

        [DataMember]
        public decimal Debit
        {
            get
            {
                return this.DebitField;
            }
            set
            {
                if (!this.DebitField.Equals(value))
                {
                    this.DebitField = value;
                    this.RaisePropertyChanged("Debit");
                }
            }
        }

        [DataMember]
        public string Descr
        {
            get
            {
                return this.DescrField;
            }
            set
            {
                if (!object.ReferenceEquals(this.DescrField, value))
                {
                    this.DescrField = value;
                    this.RaisePropertyChanged("Descr");
                }
            }
        }

        [DataMember]
        public string DueFromTo
        {
            get
            {
                return this.DueFromToField;
            }
            set
            {
                if (!object.ReferenceEquals(this.DueFromToField, value))
                {
                    this.DueFromToField = value;
                    this.RaisePropertyChanged("DueFromTo");
                }
            }
        }

        [Browsable(false)]
        public ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [DataMember]
        public string GeneralLedgerID
        {
            get
            {
                return this.GeneralLedgerIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.GeneralLedgerIDField, value))
                {
                    this.GeneralLedgerIDField = value;
                    this.RaisePropertyChanged("GeneralLedgerID");
                }
            }
        }

        [DataMember]
        public string IsChecked
        {
            get
            {
                return this.IsCheckedField;
            }
            set
            {
                if (!object.ReferenceEquals(this.IsCheckedField, value))
                {
                    this.IsCheckedField = value;
                    this.RaisePropertyChanged("IsChecked");
                }
            }
        }

        [DataMember]
        public string Lot
        {
            get
            {
                return this.LotField;
            }
            set
            {
                if (!object.ReferenceEquals(this.LotField, value))
                {
                    this.LotField = value;
                    this.RaisePropertyChanged("Lot");
                }
            }
        }

        [DataMember]
        public string OrderID
        {
            get
            {
                return this.OrderIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.OrderIDField, value))
                {
                    this.OrderIDField = value;
                    this.RaisePropertyChanged("OrderID");
                }
            }
        }

        [DataMember]
        public int OrderLineID
        {
            get
            {
                return this.OrderLineIDField;
            }
            set
            {
                if (!this.OrderLineIDField.Equals(value))
                {
                    this.OrderLineIDField = value;
                    this.RaisePropertyChanged("OrderLineID");
                }
            }
        }

        [DataMember]
        public string OwnerID
        {
            get
            {
                return this.OwnerIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.OwnerIDField, value))
                {
                    this.OwnerIDField = value;
                    this.RaisePropertyChanged("OwnerID");
                }
            }
        }

        [DataMember]
        public decimal Qty
        {
            get
            {
                return this.QtyField;
            }
            set
            {
                if (!this.QtyField.Equals(value))
                {
                    this.QtyField = value;
                    this.RaisePropertyChanged("Qty");
                }
            }
        }

        [DataMember]
        public string RateID
        {
            get
            {
                return this.RateIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.RateIDField, value))
                {
                    this.RateIDField = value;
                    this.RaisePropertyChanged("RateID");
                }
            }
        }

        [DataMember]
        public string Remark
        {
            get
            {
                return this.RemarkField;
            }
            set
            {
                if (!object.ReferenceEquals(this.RemarkField, value))
                {
                    this.RemarkField = value;
                    this.RaisePropertyChanged("Remark");
                }
            }
        }

        [DataMember]
        public int RowID
        {
            get
            {
                return this.RowIDField;
            }
            set
            {
                if (!this.RowIDField.Equals(value))
                {
                    this.RowIDField = value;
                    this.RaisePropertyChanged("RowID");
                }
            }
        }

        [DataMember]
        public string SkuID
        {
            get
            {
                return this.SkuIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.SkuIDField, value))
                {
                    this.SkuIDField = value;
                    this.RaisePropertyChanged("SkuID");
                }
            }
        }

        [DataMember]
        public string TaxGroupID
        {
            get
            {
                return this.TaxGroupIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.TaxGroupIDField, value))
                {
                    this.TaxGroupIDField = value;
                    this.RaisePropertyChanged("TaxGroupID");
                }
            }
        }

        [DataMember]
        public decimal TotalNetVolume
        {
            get
            {
                return this.TotalNetVolumeField;
            }
            set
            {
                if (!this.TotalNetVolumeField.Equals(value))
                {
                    this.TotalNetVolumeField = value;
                    this.RaisePropertyChanged("TotalNetVolume");
                }
            }
        }

        [DataMember]
        public decimal TotalNetWeight
        {
            get
            {
                return this.TotalNetWeightField;
            }
            set
            {
                if (!this.TotalNetWeightField.Equals(value))
                {
                    this.TotalNetWeightField = value;
                    this.RaisePropertyChanged("TotalNetWeight");
                }
            }
        }

        [DataMember]
        public byte[] Ts
        {
            get
            {
                return this.TsField;
            }
            set
            {
                if (!object.ReferenceEquals(this.TsField, value))
                {
                    this.TsField = value;
                    this.RaisePropertyChanged("Ts");
                }
            }
        }

        [DataMember]
        public string UpdatedBy
        {
            get
            {
                return this.UpdatedByField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UpdatedByField, value))
                {
                    this.UpdatedByField = value;
                    this.RaisePropertyChanged("UpdatedBy");
                }
            }
        }

        [DataMember]
        public DateTime UpdatedDate
        {
            get
            {
                return this.UpdatedDateField;
            }
            set
            {
                if (!this.UpdatedDateField.Equals(value))
                {
                    this.UpdatedDateField = value;
                    this.RaisePropertyChanged("UpdatedDate");
                }
            }
        }

        [DataMember]
        public string WhID
        {
            get
            {
                return this.WhIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.WhIDField, value))
                {
                    this.WhIDField = value;
                    this.RaisePropertyChanged("WhID");
                }
            }
        }
    }
}

